package com.wb.structual.decorator.general;

/**
 * @author 魏彪
 */
public class ConcreteDecoratorA extends Decorator {

    public ConcreteDecoratorA(Component component) {
        super(component);
    }

    private void operationFirst() {
        // 调用父类的operation方法之前需要执行的操作
        System.out.println("附加功能first");
    }

    private void operationLast() {
        // 调用父类的operation方法之后需要执行的操作
        System.out.println("附加功能last");
    }

    public void operation() {
        // 添加功能
        operationFirst();
        // 这里可以选择性的调用父类的方法
        // 如果不调用，则相当于完全改写了方法，实现了新的功能
        super.operation();
        // 添加功能
        operationLast();
    }
}
